package com.bnz.servlet;

import com.alibaba.fastjson.JSON;
import com.bnz.util.R;
import org.springframework.util.StringUtils;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/user")
public class UserServlet extends HttpServlet {

    // 重写service方法
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1、解决乱码问题
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");
        // 2、获取到前端路径中传的参数(cmd=...)
        String cmd = req.getParameter("cmd");
        // 3、根据获取到的参数,执行相应的方法(前提是不为空)
        if (!StringUtils.isEmpty(cmd)){
            // 3.1、cmd=login,登录
            if ("login".equals(cmd)){
                login(req,resp);
            }
            // 3.2、cmd=info,展示用户信息
            if ("info".equals(cmd)){
                info(req,resp);
            }
        }
    }


    // 1、进行登录
    private void login(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        // token是和前端登录成功参数一致,1这里随便给
        // R:统一返回值工具类
        // 1.1、构造一个统一返回对像
        R r = R.ok().data("token", 1);
        // 1.2、转换为json串,并将其输出到网页
        resp.getWriter().println(JSON.toJSONString(r));
        // 1.3、进行刷新
        resp.getWriter().flush();
    }

    // 2、展示用户信息
    private void info(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        // 2.1、利用统一返回工具类,返回给前端信息 admin:是自己取的用户名
        R r = R.ok().data("name", "admin").data("avatar","https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
        // 2.2、将其转换为json串,输出到网页
        resp.getWriter().println(JSON.toJSONString(r));
        // 2.3、进行刷新
        resp.getWriter().flush();
    }

}
